package apimediator

import (
	"reflect"

	"zstackgo/spring"
)

func init() {
	spring.RegisterInterface("header.apimediator.GlobalApiMessageInterceptor", reflect.TypeOf((*GlobalApiMessageInterceptor)(nil)).Elem())
}

type InterceptorPosition uint

const (
	InterceptorPositionSystem InterceptorPosition = iota
	InterceptorPositionFront
	InterceptorPositionEnd
)

type GlobalApiMessageInterceptor interface {
	ApiMessageInterceptor

	GetMessageClassToIntercept() []any
	GetPosition() InterceptorPosition
}
